/*
  学习目标：Switch组件和404 重定向路由的使用
*/

import React from 'react';
import { BrowserRouter as Router, Route, Link, NavLink, Switch, Redirect } from 'react-router-dom';
import './index.css';

export default class App extends React.Component {
  render() {
    return (
      <Router>
        <div className="root_child">
          <h1>app组件</h1>
          <NavLink activeClassName="xxx" to="/home" exact>
            首页
          </NavLink>
          <br />
          <Link to="/my">我的音乐</Link>
          <br />
          <Link to="/friend">朋友</Link>
          <br />
          {/* Switch组件一般要包裹住Route组件使用 */}
          {/* 匹配到第一个组件后, 就停止向下匹配 */}
          <Switch>
            {/* 场景2: path="/" 配合重定向放在第一个,  */}
            <Redirect from="/" to="/home" exact />

            <Route path="/home" component={Home} />
            <Route path="/home" component={Home} />
            <Route path="/home" component={Home} exact />

            <Route path="/my" component={MyMusic} />
            <Route path="/friend" component={Friend} />

            {/*  场景:1. 不写path, 放在Switch中的最后一个, 作为404    */}
            <Route component={NotFound} />
          </Switch>
        </div>
      </Router>
    );
  }
}

function NotFound() {
  return <h1>404页面</h1>;
}

function Home() {
  return <h1>我是首页组件</h1>;
}

function MyMusic() {
  return <h1>我是我的音乐件</h1>;
}

function Friend() {
  return <h1>我是朋友组件</h1>;
}
